package Domein;

import java.util.*;
import GUI.Controller;
import GUI.Tafel;

/**
 *
 * @author Tim
 */
public class Server {
    private ArrayList<Controller> spelers;
    /**
     *
     */
    public boolean iedereenIngelogd;
    private Spel spel;
    private ServerThread serverThread;

    /**
     * 
     */
    public Server() {
        serverThread = new ServerThread(this);
    }

    /**
     *
     * @return
     */
    public ArrayList<Controller> getSpelers() {
        return spelers;
    }

    /**
     *
     */
    public void maakTafels() {
        iedereenIngelogd = true;
        for(int a=0;a<spelers.size()-1;a++){
            if(spelers.get(a).spelerIngelogd == null){
                iedereenIngelogd = false;
            }
        }
        if(iedereenIngelogd) {
            System.out.println("SpelersSize: " +spelers.size());
            
            for(int a=0;a<spelers.size();a++){
                    spel.ronden.get(spel.ronden.size()-1).spelerToevoegen(spelers.get(a).spelerIngelogd, spelers.get(a).spelerIngelogd.getSaldo());
            }
            try {
                spel.ronden.get(spel.ronden.size()-1).rondeSpelen();
            }catch (Exception e) {}
            serverThread.setSpelers(spelers);
            refreshTafels();
            serverThread.start();
        }
    }

    public void nieuweTafel() {
            spel.nieuweSpelRonde();
            System.out.println("SpelersSize: " +spelers.size());

            for(int a=0;a<spelers.size();a++){
                    spelers.get(a).tafel = new Tafel(spelers.get(a));
                    spel.ronden.get(spel.ronden.size()-1).spelerToevoegen(spelers.get(a).spelerIngelogd, spelers.get(a).spelerIngelogd.getSaldo());
                    spelers.get(a).ronde = spel.ronden.get(spel.ronden.size()-1);
                    
            }
            try {
                spel.ronden.get(spel.ronden.size()-1).rondeSpelen();
            }catch (Exception e) {}
            serverThread.setSpelers(spelers);
            refreshTafels();

    }

    /**
     *
     */
    public void refreshTafels(){
        for(int a=0;a<spelers.size();a++){
                spelers.get(a).c.removeAll();
                spelers.get(a).tafel.createGUI();
                spelers.get(a).validate();
                spelers.get(a).repaint();
                System.out.println(a+" GUI Gemaakt");
            }
    }
    /**
     *
     * @param sp
     */
    public void setSpel(Spel sp){
        spel = sp;
    }

    /**
     *
     * @param sps
     */
    public void setSpelers(ArrayList<Controller> sps){
        spelers = sps;
    }
}
